The ACPI is an interface designed to move the control of computing system configuration and power management from the BIOS (Basic Input Output System) to the operating system. The ACPI specification is an industry standard in the personal computer hardware and software industry. The specification is available over the Internet on the ACPI website.
BIOS program code is firmware, and the basic system software for the computer. The operating system program code runs on top of the BIOS and application program code in turn runs on top of the operating system. The BIOS is referred to as firmware because it is permanently burned into a read only memory chip.
The ACPI includes registers ACPI BIOS and ACPI tables. Architecturally, the ACPI is an interface positioned between the BIOS/platform hardware layer and the operating system layer. The ACPI BIOS is a stream of code in AML (ACPI machine language) code. The ACPI is also firmware and is burned into a ROM chip.
Because the ACPI is in firmware there is no flexibility in being able to control use of features of the ACPI at the operating system level. Whatever features are burned into the ACPI firmware are used by the operating system. Accordingly, there is a need for more flexibility in use of the ACPI features to configure and power manage the computing system.